package com.hyt.it.ogt.ykcj.domain.vo.analysis;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.hyt.it.ogt.ykcj.common.annotation.EnumValue;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * description
 * 分析对象对象
 *
 * @author yaojian
 * @createTime 2022/01/09
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AnalysisVo {

    /**
     * 只校验考试id是否为空
     */
    public interface RegCheckExamId {}
    /**
     * 考试id
     */
    @NotBlank(message = "考试id不能为空",groups={RegCheckExamId.class})
    @ApiModelProperty(value = "考试id")
    private String examId;

    /**
     * 子考试考试id
     */
    @ApiModelProperty(value = "子考试考试id")
    private String relationId;

    /**
     * 科目id
     */
    @ApiModelProperty(value = "科目id")
    private String subjectId;
    /**
     * 进入考试时间
     */
    @ApiModelProperty(value = "进入考试时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date examStartDate;
    /**
     * 进入考试时间至
     */
    @ApiModelProperty(value = "进入考试时间至")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date examEndDate;

    @ApiModelProperty(value = "类型：subject,sex,education,province,city,exmaroom,exma")
    @NotBlank(message = "类型不能为空")
    @EnumValue(strValues = {"subject","sex","education","province","city","exmaroom","exma"}, message = "类型只能是subject,sex,education,province,city,exmaroom,exma")
    private String type;

    @ApiModelProperty(value = "排序列")
    private String orderByColumn;

    @ApiModelProperty(value = "排序列是否是动态列",notes = "1:是动态列，写上动态列序号，0：不是动态列")
    private String orderByDynamic;

    @ApiModelProperty(value = "排序方式（ascending，descending）")
    private String order;

    @ApiModelProperty(value = "页码")
    private Integer pageNum;

    @ApiModelProperty(value = "页大小")
    private Integer pageSize;

    @ApiModelProperty(value = "省编码")
    private String provinceCode;

}


